#ifndef MYLRCHANDLE_H
#define MYLRCHANDLE_H

#include<QString>
#include<QList>
#include<QMap>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<list>



class MyLrc{
public:
    int second;
    QString lrc;
    MyLrc(int sec,QString l):second(sec), lrc(l){}
};

class MyLrcHandle;
class LrcData{
    friend class MyLrcHandle; // 设置友元类
private:
    QString ti; // 歌名
    QString ar; // 歌手
    QString al; // 专辑
    QString by; // 制作
    std::list<MyLrc> *lrc; //歌词
    LrcData(){
        ti = "";
        ar = "";
        al = "";
        by = "";
        lrc = new std::list<MyLrc>;
    }
    ~LrcData()
    {
        delete lrc;
    }
};
// 仿函数对list排序
class CompareLrc{
public:
    bool operator()(const MyLrc &a,const MyLrc &b){
        return a.second < b.second;
    }
};

class MyLrcHandle
{
public:
    MyLrcHandle();
    bool lrcInit(QString fileName);
    QString & getTi();
    QString & getAr();
    QString & getAl();
    QString & getBy();
    std::list<MyLrc> *& getLrc();
private:
    LrcData *lrcdata; // 保存歌词信息
    void analyzeLrc(QString data); // 解析歌词
};

#endif // MYLRCHANDLE_H
